-- 获取限流 key
local key = KEYS[1]
-- 获取时间窗口（秒）
local limitTime = tonumber(ARGV[1])
-- 获取最大请求次数
local limitCount = tonumber(ARGV[2])

-- 当前请求次数
local count = redis.call('get', key)

-- 如果当前计数不存在，初始化计数为 1 并设置过期时间
if count == nil then
    redis.call('set', key, 1, 'ex', limitTime)
    return 1
else
    -- 增加计数
    count = tonumber(count) + 1
    redis.call('incr', key)
    -- 如果超过限制，返回当前计数（会触发限流）
    if count > limitCount then
        return count
    else
        return count
    end
end